Repository navigation
Conversation
|
Some design feedback, since the draft asks for it:
I haven't run it yet. I'm on Windows, so I can test the WinHTTP path once it's out of draft if that helps. AI-assisted: yes. Written with AI assistance (Claude Code); I reviewed it. |
9d062d1 to
b889391
Compare
4af63b7 to
2636a48
Compare
|
Other open pull requests touch the same code. Merging one will break the other, or both implement the same thing. If this one builds on them, list them in Depends on.
Some comparisons could not be completed because a pull request conflicts with the base branch. Review these shared files manually before concluding that there is no overlap.
|
|
Closing: #3844 is closed as not planned, since a host-backed libSceHttp isn't wanted on main and forks can adapt the online libraries, and this PR implements that transport. A fork is the right home for it. |
What
Blocked by upstream policy; preserved for forks. Upstream explicitly decided that a host-backed
libSceHttpis not wanted onmain, and closed #3844 as not planned (decision). This PR remains open pending the author’s decision to withdraw it; it is not ready for upstream acceptance under the stated policy. The complete, rebased feature remains available on aadi-varc/AnyPS5:codex/http-winhttp-fork-only.The fork adds an experimental Windows WinHTTP transport enabled with
APS5_HTTP_NETWORK=1. The default remains offline, andlibSceHttp2remains offline. This is a Windows fork feature; it does not change upstream’s offline policy.Exports dispatch to separate offline and network implementations. The offline implementation retains current main's epoll waits, context teardown and CA-list behavior. Four commits separate handle/state management, WinHTTP transport, export dispatch, and tests/documentation.
The backend supports binary blocking requests, response headers/status/length, chunked responses, optional GZIP decoding, redirects, timeouts, concurrent independent requests and cancellation. Automatic redirects with Authorization, Proxy-Authorization or Cookie headers throw before sending. Deleting a parent invalidates and cancels descendants.
HTTPS uses Windows trust and certificate checks. Certificate-loading/CA-list APIs, epoll, enabled nonblocking operations, nonnull request-status callbacks, proxy/authentication/cookie support, explicit TLS versions and chunked uploads throw when requested.
USAGE.mdwarns that custom-certificate initialization can stop a title before its first request. Console semantics and remaining gaps are recorded indocs/dev/debt/libSceHttp.md.No third-party code is added. The localhost integration test generates disposable credentials with OpenSSL. Missing Python or OpenSSL reports CTest skip code 77; certificate-generation errors, timeouts and guest failures remain failures. These changes address the four implementation/reviewability points in the draft feedback.
Tested
Windows 10.0.26300 x86-64, WinLibs GCC 15.2.0 r7, Release, Python 3.12.14. Current head:
2636a48, rebased onto main3864da595.core/libs/CMakeLists.txtconflict by preserving upstream’snid_shared_stringstest and the HTTP offline test’s explicit environment. Documented the fork-only policy inUSAGE.md.guest_offline_imports,guest_http,guest_http_response_headerandguest_http_networkall passed withAPS5_HTTP_NETWORK=1in the parent shell (2.67 seconds total), including real HTTP/HTTPS loopback requests. Conventions, whitespace and test-registration checks passed.b889391, which passed the full Windows project build and five relevant tests, includingpatched_libraries(8.31 seconds total). The full project build was not repeated for the subsequent rebases and test-environment/documentation changes.Checklist
main; no other open PR implements the same functionsNotImplemented_nid_no_patch); silent stubs are listed under Silent stubs in libSceHttp technical debt.mdfiles or images added to the repository (attach them to this PR)